$(function(){
    obj.init();
});

var obj = new function () {
    'use strict';
    return {
        dataGrid: null,
        form: null,
        params: {
            userType: null
        },
        userId: null,
        sLogonName:null,
        sUserName:null,
        dom: {
            iFrames: {
                infoFrame: null,
                deviceFrame: null,
                historyFrame: null,
                loginFrame: null
            },
            save: null
        },
        init: function () {
            this.params.userType = xhTool.getQuery('iUserType');
            this.dom.tabBar      = $('.tab-bar');
            this.dom.tabTitle    = $('#title_school').parent().parent().parent();
            this.dom.contentForm = $('#contentForm');
            this.dom.tabBar.hide();
            this.dom.tabTitle.hide();
            this.dom.contentForm.hide();

            this.dom.iFrames.infoFrame  = $('#infoFrame');
            this.dom.iFrames.deviceFrame  = $('#deviceFrame');
            this.dom.iFrames.historyFrame   = $('#historyFrame');
            this.dom.iFrames.loginFrame = $('#loginFrame');
            this.dom.save = $('#bt_form_add,#bt_form_edit');

            this.dataGrid = new xhDataGrid($('#list'), 'User/getDgData', {iUserType: this.params.userType});
            this.dataGrid.parseToolbar().activeBtn($('#bt_list_del, #bt_list_enable, #bt_list_disable, #bt_list_group'), $('#bt_list_power, #bt_list_assist,#bt_list_seeBindStu'));
            this.dataGrid.list.datagrid({'loadData': []});

            this.form = new xhForm($('#xh_form'));
            this.form.parse().bindRequired(this.dom.save);

            $('#iSchoolId').select2();
            $('#sSubjects').select2();

            this.listener();
        },
        listener: function () {
            var $this = this;
            xhExtra.clearLoadSuccess(this.dataGrid);
            $this.dataGrid.onDblClickRow = function (rowIndex, rowData) {
                var schoolName = rowData.sSchoolName;
                var schoolId = rowData.iSchoolId;
                var iUserType = rowData.iUserType;
                $this.dom.tabBar.show();
                $this.dom.tabTitle.show();
                $this.dom.contentForm.show();
                $this.userId = rowData.iUserId;
                $this.sLogonName = rowData.sLogonName;
                $this.sUserName = rowData.sUserName;
                $('#user-student').hide();
                $('#user-tch').hide();
                xhExtra.ajaxRequest('User/getUserInfo', {id: rowData.iUserId,userType:iUserType,schoolId:schoolId}, {}, function (data) {
                    if(data.iUserType==1){
                        $('#user-student').show();
                    }
                    if(data.iUserType==4){
                        $('#user-tch').show();
                    }
                    $this.dom.iFrames.infoFrame.attr('src', null);
                    $this.dom.iFrames.deviceFrame.attr('src', null);
                    $this.dom.iFrames.historyFrame.attr('src', null);
                    $this.dom.iFrames.loginFrame.attr('src', null);
                    $('a[href="#style3Tab1"]').click();
                    $('#title_school').html(schoolName+'&nbsp;&nbsp;'+$this.sUserName+'&nbsp;&nbsp;'+iUserType+'<a id="tabReturn"  class="btn btn-sm btn-default pull-right return" style="margin-right: 20px">返回</a>'+data.btn);
                    $this.form.reset().fill(data);
                    xhExtra.forwardToForm(true);
                    $('#iUserType').trigger('change');
                    $('#iSchoolId').change();
                    if(data['sSubjects']!=null) {
                        $('#sSubjects').val(tchInfo['sSubjects'].split(',')).trigger('change');
                    }
                });
            };
            $('#bt_list_add').click(function(){
                window.top.xhTop.showModal({
                    title: '添加用户',
                    content: xhTool.getFrameString('user/addUser', {}, 430),
                    size: 'md',
                    width: 1000,
                    backClose: false,
                    button: '保存'
                });
                // window.top.xhTop.createNewTab("添加用户",baseUrl+'user/addUser');
            });
            xhExtra.bindFormReset($this.form);
            xhExtra.bindFormBack();

            //查找
            xhTool.bindDocKeyDown(
                $('#bt_list_search').click(function (){
                    var vague =  xhExtra.getValue($('#list_vague'));
                    if (!vague) {
                        window.top.xhTop.showError('查找内容不能为空！');
                        return false;
                    }
                    $this.dataGrid.reload({
                        search: {
                            vague: vague
                        },
                        status: xhExtra.getValue($('#list_status')),
                        startDate: xhExtra.getValue($('#list_create_start')),
                        endDate: xhExtra.getValue($('#list_create_end')),
                        iUserType: $this.params.userType
                    })
                })
            );
            //保存
            $this.dom.save.click(function () {
                $this.funObj().submit();
            });

            //切换用户类型
            // $('#iUserType').change(function(){
            //     $this.funObj().changeUserType($(this).val());
            // }).trigger('change');
            //启用
            $('#bt_list_enable').click(function(){
                if (xhExtra.buttonDisabled($(this))) return false;
                $this.funObj().setStatus('enable', '确认启用？');
            });
            //禁用
            $('#bt_list_disable').click(function(){
                if (xhExtra.buttonDisabled($(this))) return false;
                $this.funObj().setStatus('disable', '确认禁用？');
            });
            //删除
            $('#bt_list_del').click(function () {
                if (xhExtra.buttonDisabled($(this))) return false;
                $this.funObj().deleteUser();
            });
            //设置权限
            $('#bt_list_power').click(function(){
                if (xhExtra.buttonDisabled($(this))) return false;
                $this.funObj().openPowerPage();
            });
            //设置角色
            $('#bt_list_group').click(function() {
                if(xhExtra.buttonDisabled($(this))) return false;
                $this.funObj().openUserGroup();
            });
            //远程协助
            $('#bt_list_assist').click(function() {
                if(xhExtra.buttonDisabled($(this))) return false;
                $this.funObj().startAssist();
            });
            //查看绑定学生
            // if($this.params.userType == 5 ){
                $('#bt_list_seeBindStu').click(function() {
                    if(xhExtra.buttonDisabled($(this))) return false;
                    $this.funObj().seeBindStudents();
                });
            // }
            //查看权限
            $('#bt_list_view_power').click(function () {
                if(xhExtra.buttonDisabled($(this))) return false;
                $this.funObj().viewPower();
            });
            //tab按钮点击事件
            $('.tab-bar a').click(function () {
                $this.funObj().clickTab($(this));
            });
            //tab返回
            $('#title_school').on('click','#tabReturn',function () {
                xhExtra.backToList();
                $this.dom.tabBar.hide();
                $this.dom.tabTitle.hide();
                $this.dom.contentForm.hide();
            });
            //重置密码
            $('#title_school').on('click','#setPsw',function () {
                $this.funObj().setPsw();
            });
            //设置组
            $('#title_school').on('click','#setGroup',function () {
                // if(xhExtra.buttonDisabled($(this))) return false;
                $this.funObj().setGroup();
            });
            //修改学校
            $('#title_school').on('click','#setSchool',function () {
                $this.funObj().setSchool();
            });
        },
        funObj: function(){
            var $this = this;
            return {
                submit: function () {
                    $this.form.submit('User/modifyUser', {}, function (data) {
                        window.top.swal({
                            title: "温馨提示",
                            text: data.msg,
                            timer: 2000,
                            showConfirmButton: false
                        });
                        xhExtra.backToList($this.dataGrid);
                    });
                },
                changeUserType: function (userType) {
                    if (userType === '1') {
                        $('.belong-tech').hide();
                        $('.belong-stud').slideDown();
                    }
                    else if (userType === '4') {
                        $('.belong-stud').hide();
                        $('.belong-tech').slideDown();
                    }
                    else {
                        $('.belong-stud,.belong-tech').slideUp();
                        $('#iSchoolId').val('');
                    }
                },
                setStatus: function(target, msg) {
                    xhExtra.askChangeStatus('User/setUserState', {ids: $this.dataGrid.getSelectValues('iUserId'), target: target}, $this.dataGrid, msg);
                },
                deleteUser: function () {
                    xhExtra.askChangeStatus('User/delUser', {ids: $this.dataGrid.getSelectValues('iUserId')}, $this.dataGrid, '确认删除？');
                },
                openPowerPage: function () {
                    window.top.xhTop.createNewTab('设置权限-' + $this.dataGrid.getSelectValue('sUserName'), baseUrl + 'User/userSetPower?iUserId=' + $this.dataGrid.getSelectValue('iUserId'));
                },
                openUserGroup: function () {
                    var userIds = $this.dataGrid.getSelectValues('iUserId');
                    window.top.xhTop.showModal({
                        title: '设置用户组(共' + userIds.length + '人)',
                        button: '确认',
                        content: xhTool.getFrameString('Group/userGroup', {type: 1, userIds: userIds.join(',')}, 500)
                    });
                },
                startAssist: function () {
                    window.top.xhTop.createNewTab($this.dataGrid.getSelectValue('sUserName') + '-客户端列表', baseUrl + 'assist/users/clients?id=' + $this.dataGrid.getSelectValue('iUserId'));
                },
                seeBindStudents:function () {
                    var parentId = $this.dataGrid.getSelectValues('iUserId');
                    window.top.xhTop.showModal({
                        title: '绑定学生列表',
                        backClose: false,
                        content: xhTool.getFrameString('Order/bindStudent', {parentId: parentId}, 500)
                    });
                },
                viewPower: function () {
                    var userId = $this.dataGrid.getSelectValue('iUserId');
                    if (!userId) {
                        window.top.swal('用户id不存在！', '', 'error');
                        return false;
                    }
                    window.top.xhTop.createNewTab('查看权限', baseUrl + 'user/userSetPower/true?iUserId=' + userId, true);
                },
                openEditForm: function (userId) { //打开iframe
                    $this.dom.iFrames.infoFrame.attr('src', null);
                    $this.dom.iFrames.deviceFrame.attr('src', null);
                    $this.dom.iFrames.historyFrame.attr('src', null);
                    $this.dom.iFrames.loginFrame.attr('src', null);
                    $('a[href="#style3Tab1"]').click();
                    xhExtra.ajaxRequest('User/getUserInfo' , {id: userId}, {}, function(data) {
                        $this.form.reset().fill(data);
                        xhExtra.forwardToForm(true);
                        $('#iUserType').trigger('change');
                        $('#iSchoolId').change();
                    });
                },
                setGroup: function () {
                    var userIds = [];
                    userIds.push($this.userId);
                    window.top.xhTop.showModal({
                        title: '设置用户组(共' + userIds.length + '人)',
                        button: '确认',
                        content: xhTool.getFrameString('Group/userGroup', {type: 1, userIds: userIds.join(',')}, 500)
                    });
                },
                setPsw: function () {
                    var userIds = [];
                    userIds.push($this.userId);
                    window.top.swal({
                        showCancelButton: true,
                        confirmButtonText: '修改',
                        cancelButtonText: '取消',
                        showLoaderOnConfirm: true,
                        allowOutsideClick: false,
                        title: '输入新密码',
                        html: '<input type="password" id="new_pwd" class="swal2-input" placeholder="新密码" />' +
                        '<input type="password" id="confirm_pwd" class="swal2-input" placeholder="确认密码" >',
                        preConfirm: function() {
                            return new Promise(function (resolve, reject) {
                                var newPwd     = $('#new_pwd', window.top.document).val(),
                                    confirmPwd = $('#confirm_pwd', window.top.document).val();
                                if(newPwd.length < 6){
                                    reject('密码需大于6位数！');
                                } else if (newPwd !== confirmPwd) {
                                    reject('密码不匹配！');
                                } else {
                                    xhExtra.ajaxRequest('User/setPassword', {userIds: userIds, password: newPwd}, {success: true});
                                    resolve();
                                }
                            })
                        }
                    });
                },
                setSchool: function () {
                    var userIds = [];
                    userIds.push($this.userId);
                    window.top.xhTop.showModal({
                        title: '修改学校',
                        button: '确认',
                        content: xhTool.getFrameString('User/setSchool', {userIds: userIds.join(',')}, 170)
                    });
                },
                clickTab:function (target) {
                    var id = $(target).attr('href');
                    if (id == '#style3Tab1'){
                        return false;
                    }
                    var frame = $(''+id+'').find('iframe');

                    if(frame[0]['src'] == '' || frame[0]['src'] == 'about:blank') {
                        switch (frame[0]['id']){
                            case 'deviceFrame':
                                $this.dom.iFrames.deviceFrame.attr('src',baseUrl+'user/device?userId='+$this.userId);
                                break;
                            case 'historyFrame' :
                                $this.dom.iFrames.historyFrame.attr('src',baseUrl+'user/history?userId='+$this.userId);
                                break;
                            case 'loginFrame':
                                $this.dom.iFrames.loginFrame.attr('src',baseUrl+'user/login?userId='+$this.userId);
                                break;
                            default:break;
                        }
                    }
                }
            }
        }
    }
};
/**
 * create by ck on 2016/3/15.
 */
// var list;
// var queryParams;
// $(document).ready(function () {
//     var userType = xhTool.getQuery('iUserType');
//     queryParams = {"iUserType": userType};
//     list = $('#List');
//     $('.xh-datagrid-toolbar').parseToolbar(afterParseToolbar);
//     $('.xh-form').parseForm($('#bt_form_add, #bt_form_edit'));
//     //有应用类型则添加参数
//     list.initDataGrid('getDgData', {"queryParams": queryParams})
//         .setSelectThenEnable(['bt_list_del', 'bt_list_enable', 'bt_list_disable'], ['bt_list_ContactTeacher', 'bt_list_SetPower']);
//     DataGrid.onLoadSuccess = function(data){
//         list.dataGridClear();
//     };
//     $('#bt_form_add').click(function () {
//         //先判断用户名是否存在
//         $.post('checkUserLogonName', {logonName: $('#XHSys_User_sLogonName').val()},function(d){
//             if(d != 'success'){
//                 window.top.xhTop.showMessage({title: '用户名已存在！', type: 'error'});
//                 return false;
//             }
//             $.overtFun.clickSubmitForm(list);
//         });
//     });
//     $('#bt_form_edit').click(function () {
//         $.overtFun.clickSubmitForm(list);
//     });
//     //返回按钮
//     $('#bt_form_back').click(function () {
//         $.overtFun.clickBackForm();
//     });
//     //重置按钮
//     $('#bt_form_reset').click(function () {
//         $.overtFun.clickResetForm();
//     });
//     //点击增加按钮隐藏列表，显示增加页面
//     $('#bt_list_add').click(function(){
//         $.overtFun.clickAddList(list);
//         //选中对应类型并触发下拉框事件
//         if(userType) $('#XHSys_User_iUserType').val(userType).trigger('change');
//     });
//     //删除按钮
//     $('#bt_list_del').click(function () {
//         var ids = list.getDataGridSelectedFields('iUserId');
//         $.overtFun.clickDelList(ids);
//     });
//     //设置启用
//     $('#bt_list_enable').click(function(){
//         if($(this).checkButtonDisabled()) return false;
//         var ids = list.getDataGridSelectedFields('iUserId');
//         $.overtFun.setModelState('setUserState', ids, 'enable');
//     });
//     //设置禁用
//     $('#bt_list_disable').click(function(){
//         if($(this).checkButtonDisabled()) return false;
//         var ids = list.getDataGridSelectedFields('iUserId');
//         $.overtFun.setModelState('setUserState', ids, 'disable');
//     });
//     if($('#bt_form_edit').length>0){//如果有修改权限
//         //双击行后执行OpenEditAppDiv方法
//         DataGrid.onDblClickRow = function(rowIndex, rowData){
//             $.overtFun.openEditPage(rowData.iUserId, 'XHSys_User', bindFormElementEvent);
//         }
//     }
//     //bDisable为'禁用'的行高亮显示
//     DataGrid.rowStyler = function(rowIndex, rowData){
//         if (rowData.bDisable == '禁用'){
//             return 'background-color:yellow;';
//         }
//     };
//     //设置权限
//     $('#bt_list_SetPower').click(function(){
//         var id = list.getDataGridSelectedField('iUserId');
//         var userName = list.getDataGridSelectedField('sUserName');
//         window.top.xhTop.createNewTab('设置权限', baseUrl + 'User/userSetPower?iUserId=' + id);
//         //window.location.href = baseUrl + 'User/userSetPower?iUserId=' + id;
//     });
//     bindFormElementEvent();
//     //同步用户表
//     $('#bt_list_SynUser').click(function(){
//         $.post(baseUrl + 'User/synUser', {}, function(result){
//             window.top.xhTop.showMessage(result);
//         });
//     });
// });
// //绑定表单事件
// function bindFormElementEvent() {
//     //类型下拉框选择事件
//     $('#XHSys_User_iUserType').change(function(){
//         if($(this).val() == '1'){                                                   //学生显示学校，年级
//             $('.belong-stud').fadeIn();
//             $('.belong-tech').hide();
//             //$('#XHSys_User_iSchoolId,#XHSys_User_iGradeCode').parent().fadeIn().prev().fadeIn();
//             //$('#XHSys_User_iGradeCode').prop('selectedIndex', 0);                   //选中第一个值
//         }
//         else if($(this).val() == '4'){                                              //教师显示学校
//             $('.belong-stud').hide();
//             $('.belong-tech').fadeIn();
//             //$('#XHSys_User_iSchoolId').parent().fadeIn().prev().fadeIn();
//             //$('#XHSys_User_iGradeCode').val('').attr('value','').parent().fadeOut().prev().fadeOut();
//         }
//         else{
//             $('.belong-stud,.belong-tech').fadeOut();
//             //$('#XHSys_User_iSchoolId,#XHSys_User_sSchoolName,#XHSys_User_iGradeCode').val('').attr('value','');
//             //$('#XHSys_User_iSchoolId,#XHSys_User_iGradeCode').parent().fadeOut().prev().fadeOut();
//         }
//     }).trigger('change');
//     $('#XHSys_User_sIdentityCode').keyup(function(){
//         if($(this).val().length != 18) return false;
//         $.post(baseUrl + 'User/selectUserByIdentity', {sIdentityCode: $(this).val()}, function(result){
//             if(result == 'fail') return false;
//             window.top.xhTop.showModal({
//                 title: '用户信息存在',
//                 content: '检测到已有信息，是否覆盖？',
//                 button: '覆盖',
//                 size: 'sm'
//             }, coverInfo, result);
//         });
//     });
//     //学校名文本框点击弹出选择窗口,双击选择
//     $('#XHSys_User_sSchoolName').click(function(){
//         var src = baseUrl + 'User/userChooseSchool';
//         window.top.xhTop.showModal({
//             title: '选择学校',
//             content: "<iframe frameborder='0' style='width: 100%;height: 500px;' src='" + src + "'></iframe>",
//             size: 'lg'
//         });
//     });
//     //关联教师按钮
//     $('#bt_list_ContactTeacher').click(function(){
//         var userId  = list.getDataGridSelectedField('iUserId');    //所选服务人员ID
//         var src     = baseUrl + 'User/userSchoolTeacherList?iUserId=' + userId;
//         window.top.xhTop.showModal({
//             title: '选择关联教师',
//             content: '<iframe frameborder="0" style="width:100%;height: 500px;" src="' + src + '"></iframe>',
//             button: '确认关联',
//             size: 'lg'
//         });
//     });
//     // $('#XHSys_User_sBirthday').datetimepicker({
//     //     format: 'yyyy-mm-dd',           //年-月-日
//     //     autoclose:true,                 //自动关闭
//     //     language:'zh-CN',               //中文
//     //     todayBtn:true,                  //选择今天按钮
//     //     minView:3                       //只选择到天
//     // });
// }
// //表单覆盖
// function coverInfo(userId) {
//     $('#bt_modal_confirm', window.top.document).click(function () {
//         window.top.xhTop.closeModal();
//         $.overtFun.openEditPage(userId, 'XHSys_User', changeSelectAndBindEvent);
//     });
// }
// //重新绑定表单事件及下拉框
// function changeSelectAndBindEvent(){
//     bindFormElementEvent();
//     $('#XHSys_User_iUserType').change();
// }
// function afterParseToolbar()
// {
//     $.overtFun.vagueSearch(list, queryParams);
// }